package reflectstudy;

public class Test {
    public static void main(String[] args) throws Exception {
        /**
         * 获取字节码信息的方式
         * 1 2 不常用 已经有了对象了 就可以直接调用了 不用再反射回去取信息 多此一举
         */

        // 1. 对象.getClass()
        Person person = new Person();
        Class<? extends Person> aClass1 = person.getClass();
        System.out.println(aClass1); // class reflectstudy.Person

        // 2. 类.class
        Class<Person> personClass = Person.class;
        System.out.println(personClass); // class reflectstudy.Person
        System.out.println(aClass1==personClass); // true


        // 3. Class.forName 用的最多 调用Class类提供的静态方法forName
        Class<?> aClass = Class.forName("reflectstudy.Person");
        System.out.println(aClass); // class reflectstudy.Person

        // 4.利用类的加载器
        ClassLoader classLoader = Test.class.getClassLoader();
        Class<?> aClass2 = classLoader.loadClass("reflectstudy.Person");
        System.out.println(aClass2); // class reflectstudy.Person


    }
}
